package com.chalk.service;

import com.baomidou.mybatisplus.service.IService;
import com.chalk.model.SysPermission;
import com.chalk.vo.MenuTree;
import com.chalk.vo.SysPermissionVo;

import java.util.List;
import java.util.Map;

/**
 * 系统权限表(SysPermission)表服务接口
 *
 * @author maxiaoqiang
 * @since 2019-03-28 17:19:38
 */
public interface SysPermissionService extends IService<SysPermission> {

    /*自定义接口*/

    /**
     * 根据主键批量(逻辑)删除
     *
     * @param ids
     * @return
     */
    int deleteBatchByPrimaryKey(String[] ids);

    /**
     * 查询所有菜单
     *
     * @param params
     * @return
     */
    List<SysPermissionVo> selectMenus(Map<Object, Object> params);

    /**
     * 查询菜单树
     *
     * @param rootId
     * @return
     */
    List<MenuTree> getTree(String rootId);

    List<MenuTree> getTreeByRoleId(String roleId,String parentId);

    /**
     * 查询用户拥有的菜单树
     *
     * @param params
     * @return
     */
    List<MenuTree> selectUserTree(MenuTree params);


    /**
     * 查询用户拥有的菜单树
     *
     * @param roleId
     * @return
     */
    List<MenuTree> selectUserTree(String roleId);

    /**
     * 条件查询所有菜单
     *
     * @param params
     * @return
     */
    List<MenuTree> selectMenuMarkTree(MenuTree params);

    /**
     * 条件查询所有菜单
     *
     * @param params
     * @return
     */
    List<MenuTree> selectMenuMarkTreeUser(MenuTree params);
}